config BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS
	bool
	default y
	# The ARC version needs C++11, thus gcc >= 4.8, like gdb-8.0.x
	depends on BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_arc
	depends on !((BR2_arm || BR2_armeb) && BR2_BINFMT_FLAT)
	depends on !BR2_microblaze
	depends on !BR2_nios2
	depends on !BR2_or1k

comment "Host GDB Options"
	depends on !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
	depends on BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS

config BR2_PACKAGE_HOST_GDB
	bool "Build cross gdb for the host"
	# When the external toolchain gdbserver is used, we shouldn't
	# allow to build a cross-gdb, as the one of the external
	# toolchain should be used.
	depends on !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
	depends on BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS
	help
	  Build a cross gdb that runs on the host machine and debugs
	  programs running on the target. It requires 'gdbserver'
	  installed on the target, see BR2_PACKAGE_GDB_SERVER to
	  enable it.

if BR2_PACKAGE_HOST_GDB

config BR2_PACKAGE_HOST_GDB_TUI
	bool "TUI support"
	help
	  This option enables terminal user interface (TUI) for gdb

config BR2_PACKAGE_HOST_GDB_PYTHON
	bool "Python support"
	help
	  This option enables the Python support in the cross gdb.

config BR2_PACKAGE_HOST_GDB_SIM
	bool "Simulator support"
	depends on !BR2_arc
	help
	  This option enables the simulator support in the cross gdb.

choice
	prompt "GDB debugger Version"
	default BR2_GDB_VERSION_8_0
	depends on !BR2_arc
	help
	  Select the version of gdb you wish to use.

config BR2_GDB_VERSION_7_12
	bool "gdb 7.12.x"

config BR2_GDB_VERSION_8_0
	bool "gdb 8.0.x"
	# Needs a C++11 compiler
	depends on BR2_HOST_GCC_AT_LEAST_4_8

config BR2_GDB_VERSION_8_1
	bool "gdb 8.1.x"
	# Needs a C++11 compiler
	depends on BR2_HOST_GCC_AT_LEAST_4_8

endchoice

endif

# Tells whether the currently selected gdb version requires C++11
# support in the toolchain. When host-gdb is not enabled, the target
# gdb built is 8.0, which requires C++11 support, which is why
# BR2_PACKAGE_GDB_NEEDS_CXX11 is 'y' when BR2_PACKAGE_HOST_GDB is not
# enabled. When host-gdb is built, with the version set to 8.0 or 8.1
# then C++11 support is needed in the toolchain to build gdb for the
# target.
#
# Even though this option is related to target gdb dependencies, we
# keep it next to the BR2_GDB_VERSION so that they are kept in sync.
config BR2_PACKAGE_GDB_NEEDS_CXX11
	bool
	default y if !BR2_PACKAGE_HOST_GDB
	default y if BR2_GDB_VERSION_8_0
	default y if BR2_GDB_VERSION_8_1
	default y if BR2_arc

# If cross-gdb is not enabled, the latest working version is chosen.
config BR2_GDB_VERSION
	string
	default "arc-2018.03-gdb" if BR2_arc
	default "7.12.1"   if BR2_GDB_VERSION_7_12
	default "8.0.1"    if BR2_GDB_VERSION_8_0 || !BR2_PACKAGE_HOST_GDB
	default "8.1.1"    if BR2_GDB_VERSION_8_1
	depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB
